<?php

namespace App\Miya\UIData;

use App\Miya\Models\Section;
use Illuminate\Database\Eloquent\ModelNotFoundException;

class SectionData extends CommonData
{
    protected $name = 'section';

    /**
     * 通过内容区块Tag获取内容
     * @param $tag 内容区块tag
     *
     * @operate 直接调用
     */
    public function getByTag($tag)
    {
        return $this->dataCache(function () use ($tag) {
            $section = Section::whereTag($tag)->select('content')->first();
            if (!$section) {
                $msg = sprintf('内容区块未找到tag为 %s 的数据信息', $tag);
                throw new ModelNotFoundException($msg);
            }

            return $section->content;
        }, __METHOD__, $tag);
    }

    /**
     * 通过内容区块Tag获取内容
     * @param $id 内容区块id
     *
     * @operate 直接调用
     */
    public function get($id)
    {
        return $this->dataCache(function () use ($id) {
            $section = Section::select('content')->find($id);
            if (!$section) {
                $msg = sprintf('内容区块未找到id为 %s 的数据信息', $id);
                throw new ModelNotFoundException($msg);
            }

            return $section->content;
        }, __METHOD__, $id);
    }
}
